<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
  </head>
  <body>
    <script>
      // 作业：封装函数 处理'ababfasbasfbfdbfbafbafb' // 出现最多的符号，次数为几
      // let str = 'ababfasbasfbfdbfbafbafb'
      // let obj = {}
      // for (let i = 0; i < str.length; i++) {
      //   if (obj[str[i]]) {
      //     obj[str[i]]++
      //   } else {
      //     obj[str[i]] = 1
      //   }
      // }
      // console.log(obj)
      // let a = 0
      // let b = 0
      // for (let k in obj) {
      //   if (a < obj[k]) {
      //     a = obj[k]
      //     b = k
      //   }
      // }
      // console.log(a, b)

      // const goods = [
      //   { uname: '小米', price: 3000 },

      //   { uname: '苹果', price: 1000 },

      //   { uname: '华为', price: 10000 },

      //   { uname: 'oppo', price: 2000 },

      //   { uname: 'vivo', price: 2000 },

      //   { uname: '红米', price: 3000 },

      //   { uname: '诺基亚', price: 500 },
      // ]

      // // 要求1 找到小米这个对象 返回回来把品牌和价格显示再页面当中
      // const res = goods.find((item) => item.uname == '小米')
      // console.log(res)
      // // 要求2 买这里面最贵的 告诉用户哪个品牌多少钱
      // const rs = goods.forEach((item) => {
      //   if (item.price == 10000) {
      //     console.log(item)
      //   }
      // })
      // // 要求3 判断这里面的价格都大于3000吗 要求先把所有的价格汇总在一个数组里 再判断
      // let arr = []
      // const res1 = goods.forEach((item) => {
      //   arr.push(item.price)
      // })
      // console.log(arr)
      // // 要求4 全买需要多少钱
      //  const res3=goods.reduce((prev,item)=>{
      //    return prev+item.price
      //  },0)
      //  console.log(res3);
      // // 要求5 随机显示一个品牌的名字（提示把所有的属性值获取过来） 然后根据这个品牌名字取返回这个对象
      // let  radeom=goods[Math.floor(Math.random()*goods.length)].uname
      // const res4=goods.find(item=>{
      //   if(item.uname===radeom){
      //         return item
      //   }
      // })
      // console.log(res4);

      // 作业 [524,633,777,82,99,422,7778,20,6,44,523] // 大于300 统计求和
      // let arr = [524, 633, 777, 82, 99, 422, 7778, 20, 6, 44, 523]
      // const res=arr.filter(item=>item>300).reduce((prev,item)=>{
      //      return prev+item
      // })
      // console.log(res);

      // 作业：通过数组解构拿出来这个人的信息（要求用俩变量解构完毕），['张三',{uname:'张三',age:18,address:'杭州'},{uname:'李四',age:20,address:'上海'}]
      // 通过解构出来的数据第一个名字 找出这个人的全部信息 打印出来
      //  let[a,...b]=['张三',{uname:'张三',age:18,address:'杭州'},{uname:'李四',age:20,address:'上海'}]
      //  console.log([a,...b]);
      // const data=[a,...b]
      // const  res1=data.filter(item=>{
      //   return item.uname==a
      // })
      // console.log(res1);

      // 作业1：[1, 5, 8,88,100,23] [2,124,66,77,88,999] 通过函数封装 求两个数组的最大值（使用展开运算符）
      //  let res= Math.max(...[1, 5, 8,88,100,23], ...[2,124,66,77,88,999])
      //  console.log(res);

      // 封装函数表达式的函数不管用户输入什么数字，求出,数组返回最大值，最小值，平均值，解构出来打印在页面中
      //  function fun(){
      //   //  console.log(arguments);
      //   let max=arguments[0]
      //   let min=arguments[0]
      //   for(let i=0;i<arguments.length;i++){
      //    max= max<arguments[i]?arguments[i]:max
      //    min= min>arguments[i]?arguments[i]:min
      //   }
      //   console.log(max);
      //   console.log(min);
      //  }
      //  fun(6,6,2,6,2,2)

<<<<<<< HEAD
      

      // 封装函数处理 用户输入一个数 是否是任意两个数的积 如果是 返回这两项的索引，如果不是返回false
      // function fun(num) {
      //   let arr = [1, 3, 8, 2, 9]
      //   let flag = false
      //   for (let i = 0; i < arr.length; i++) {
      //     for (let j = i + 1; j < arr.length; j++) {
      //       if (num == arr[i] * arr[j]) {
      //         flag = true
      //         return [arr[i], arr[j]]
      //       }
      //     }
      //   }
      //   if (!flag) {
      //     return  false
      //   }
      // }
      // let num = +prompt('输入数字')
      // fun(num)

      // let arr = [6, 3, 9, 22, 16, 4, 7, 66]求该数组中大于平均值的数的个数，和小于平均值的个数。
    //   let arr = [6, 3, 9, 22, 16, 4, 7, 66]
    //   const res=arr.reduce((prev,item)=>{
    //       return prev+item
    //   })
    //   console.log(res/arr.length);
    //  const res2= arr.filter(item=>{
    //     return item>res/arr.length
    //   })
    //   console.log(res2);

    //   const res3= arr.filter(item=>{
    //     return item<res/arr.length
    //   })
    //   console.log(res3);


    // 数组去重 id相同  可以多个方法实现
    // let arr = [
    // {id: 1,name:'张三',age:18},
    // {id: 2,name:'李四',age:20},
    // {id: 3,name:'王五',age:15},
    // {id: 1,name:'张三',age:18},
    // {id: 4,name:'王五',age:19},
    // ]
    // let obj={}
  //   const res=arr.reduce((prev,item)=>{
  //     obj[item.id]?'':obj[item.id]=prev.push(item)
  //     return prev
  //   },[])
  //  console.log(res);



// let obj = [
//         { uname: '张三', score: 90, status: '1' },
//         { uname: '李四', score: 10, status: '3' },
//         { uname: '王五', score: 70, status: '2' },
//       ]
// let newobj = {
//     1: '优秀',
//     2: '良好',
//     3: '差劲',
//    }
  // console.log(newobj['1'])
// 如果1 显示优秀，如果是2 显示良好，3 显示差劲
//效果如下 打印页面
// 张三 优秀 
// 李四 差劲
// 王五 良好
    // const res=obj.forEach((item,index)=>{
    //    item.status=newobj[obj[index].status]
    // })
    // console.log(obj);



//     const arr = { 姓名: 'zs', 性别: '男' }
//  const rule = {
//    姓名: 'name',
//    性别: 'gender',
//  }
//  // // =>结合arr和rule数据处理成 提示for in// {name:'zs',gender:'男'}
// let obj={}
//  for(let k in arr){
//    obj[rule[k]]=arr[k]
//  }
//  console.log(obj);




      // 5 6 1 13 2 9  10  12  19 20 12 undefined undefined 


      // 作业1.用数组map方法处理['张三','李四','王五'] => [{uname:'张三',age:18},{uname:'李四',age:18},{uname:'王五',age:18}]
    //  let arr=['张三','李四','王五']
    // const res= arr.map(item=>{
    //   return {uname:item,age:18}
    //  })
    //  console.log(res);

    // 作业1，本地存储你同学的所有的信息（用对象统计），再取出来，修改名字然后删除性别，再更新存储本地
    // let obj={
    //   uname:'zs',
    //   age:18
    // }
    //   localStorage.setItem('uname',JSON.stringify(obj))

    //   localStorage.getItem(JSON.parse('uname'))
      

    // 冒泡排序
    // let arr=[26,2,6,1,6,612,122,5]
    // for(let i=0;i<arr.length;i++){
    //  for(let j=0;j<arr.length-i-1;j++){
    //          if(arr[j]>arr[j+1]){
    //            let tmp=arr[j]
    //            arr[j]=arr[j+1]
    //            arr[j+1]=tmp
    //          }
    //       }
    //     }
    //     console.log(arr);

    // 作业：数组中['老王', '老六', '老八', '雪糕老师'] 把老王和雪糕老师换个位置
    let arr=['老王', '老六', '老八', '雪糕老师'] 
    
    // let  temp=arr[0]
    //  arr[0]=arr[3]
    //  arr[3]=temp
    //  console.log(arr);
    // arr.pop('老王')
    // console.log(arr.pop());
    // console.log(arr.shift());

    
    </script>
=======


      // js引擎预解析
      var num = 10
      var num1 = 30
      function fun() {
        console.log(num)
        var num = 20
        console.log(num)
        function fun1() {
          var num = 40
          console.log(num)
          console.log(num1)
        }
        var num1 = 80
        fun1()
      }
      console.log(num)
      fun()


      var num
      var num1
      function fun() {
        var num
        console.log(num)
         num = 20
        console.log(num)
        function fun1() {
          var num 
          num = 40
          console.log(num)
          console.log(num1)
        }
        var num1 
        num1 = 80
        fun1()
      }
      num = 10
      num1 = 30
      console.log(num)
      fun()
>>>>>>> f7e34d1092413591aa2152fd72621b7e70c3074c
    </script>
  </body>
</html>
